export * from './options';
export * from './maps';
export { default as maps } from './maps';

const env = import.meta.env.VITE_ENV;

// 登录类型（account账号密码登录、authorization授权登录、token传参登录、key鉴权）
type LoginType = 'account' | 'authorization' | 'token' | 'key';
const loginType: LoginType = 'authorization';

// 布局类型（dashboard使用管理系统模式、normal使用常规模式）
type LayoutType = 'dashboard' | 'normal';
const layoutType: LayoutType = 'dashboard';

// 基本配置
const baseConfig = {
  /* 总体运作方式的配置 */
  loginType,
  layoutType,
  adminAuthCode: 1000000, // 超级管理员的权限code
  /* 网络请求相关配置 */
  api: {
    prefix: 'api', // 接口前缀
    timeout: 60000, // 默认60秒超时
    commonHeaders: {
      // eslint-disable-next-line camelcase
      // version_code: 3.1
    }, // 公共请求头
    formatRequestFields: false, // 是否把请求字段中的蛇形命名法改为驼峰命名法
    formatResponseFields: false, // 是否把响应字段中的驼峰命名法改为蛇形命名法
    kgj: import.meta.env.VITE_APP_BASE_URL,
    cy: import.meta.env.VITE_APP_CY_BASE_URL,
    dyj: import.meta.env.VITE_APP_DYJ_BASE_URL,
    agency: import.meta.env.VITE_APP_AGENCY_BASE_URL,
    content: import.meta.env.VITE_APP_CONTENT_BASE_URL
  },
  /* 路由相关配置 */
  route: {
    noAutoList: ['login', 'redirect', 'home'], // 不自动加载的目录列表
    whiteList: ['/login', '/404', '/manage/transferPage'] // 白名单
  },
  /* 账密相关配置 */
  captchaKey: 'FFFF0N0000000000A1D5',
  encrypt: import.meta.env.VITE_APP_ENCRYPT === '1',
  /* 辅助开发的flag */
  env,
  isDev: import.meta.env.VITE_ENV === 'dev',
  isProd: import.meta.env.VITE_ENV === 'prod', // 是否是生产环境； 当前只在登录页使用
  kgjDomain: import.meta.env.VITE_KGJ_DOMAIN,
  /* 不区分环境的地址相关配置 */
  ossPrefix: 'https://fe-res.kaogujia.com/kgj-crm-admin/' // 暂未使用
};

// vite define配置项注入的基本信息
export const PROJECT_NAME = process.env.PROJECT_NAME;
export const PROJECT_VERSION = process.env.PROJECT_VERSION;
export const APP_NAME = process.env.APP_NAME;
export const PACKAGE_NAME = process.env.PACKAGE_NAME;

// localstorage key
export const LOCALSTORAGE_TOKEN = 'token'; // localstorage token key
export const LOCALSTORAGE_USERINFO = 'userinfo'; // localstorage userinfo key
export const LOCALSTORAGE_PERMISSIONS = 'permissions'; // localstorage permissions key
export const LOCALSTORAGE_SIDEBARSTATUS = 'sidebarStatus'; // localstorage sidebarStatus key
const config = { ...baseConfig };

console.log('config', config);

export default config;
